import com.test.java01.Student;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentSystem {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //创建集合
        ArrayList<Student> stu = new ArrayList<>();
        //调用主菜单方法
        while(true) {
            Menu();
            System.out.println("请输入您的选择：");
            int choose = sc.nextInt();
            switch (choose) {
                case 1 -> Add(stu);
                case 2 -> Delete(stu);
                case 3 -> Modify(stu);
                case 4 -> Query(stu);
                default -> System.exit(0);//程序终止
            }

        }

    }
    //主菜单方法
    public static void Menu(){
        System.out.println("--------------------欢迎来到学生管理系统------------------");
        System.out.println("1、添加学生");
        System.out.println("2、删除学生");
        System.out.println("3  修改学生");
        System.out.println("4、查询学生");
        System.out.println("5、退出");
    }
    //添加学生
    public static void Add(ArrayList<Student> stu){
        //需求：学生的id唯一
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要添加的学生人数：");
        int num=sc.nextInt();
        for (int i = 0; i < num; i++) {
            //创建学生对象
            Student peo =new Student();
            //判断id是否唯一，每输入一个id就要遍历集合查找是否该id已经存在
            while(true) {
                System.out.println("请输入id：");
                String stuid = sc.next();
                for (int j = 0; j < stu.size(); j++) {
                    if (stuid == stu.get(j).getId()) {
                        System.out.println("该Id已经存在：");
                    }
                }
                peo.setId(stuid);
                break;
            }

            System.out.println("请输入姓名：");
            peo.setName(sc.next());
            System.out.println("请输入年龄：");
            peo.setAge(sc.nextInt());
            System.out.println("请输入家庭住址：");
            peo.setAddress(sc.next());
            //将对象添加到集合中
            stu.add(peo);
        }


    }
    //删除学生
    public static void Delete(ArrayList<Student> stu){
        int num=1;
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的学生id:");
        String stuid=sc.next();
        //判断id是否存在，遍历集合查找，若存在才删除
        for(int i=0;i<stu.size();i++){
            if(stu.get(i).getId().equals(stuid)){
                stu.remove(i);
                num=0;
            }
        }
        if(num==1)
            System.out.println("该Id不存在！");
        Menu();
    }
    //修改学生
    public static void Modify(ArrayList<Student> stu){
        int m=1;
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的学生id：");
        String stuid=sc.next();
        for (int i = 0; i < stu.size(); i++) {
            if(stu.get(i).getId().equals(stuid)){
                System.out.println("请输入姓名");
                stu.get(i).setName(sc.next());//先找到这个对象，然后重新给这个对象赋值
                System.out.println("请输入年龄");
                stu.get(i).setAge(sc.nextInt());
                System.out.println("请输入家庭住址：");
                stu.get(i).setAddress(sc.next());
                m=0;
            }
        }
        if(m==1)
            System.out.println("该Id不存在！");
        Menu();

    }
    //查询学生
    public static void Query(ArrayList<Student> stu){
        //如果没有学生信息，提示添加信息
        if(stu.size()==0)//集合的大小为0时，集合就为空
            System.out.println("当前无学生信息，请添加后再查询！");
        else{
            System.out.println("id"+"\t\t"+"姓名"+"\t"+"年龄"+"\t"+"家庭住址");
            for(int i=0;i<stu.size();i++){
                System.out.println(stu.get(i).getId()+"\t"+stu.get(i).getName()+"\t"+
                        stu.get(i).getAge()+"\t\t"+stu.get(i).getAddress());
            }
        }

    }





}
